package com.eb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.eb.domain.Innovation;
import com.eb.dto.AddInnovationDto;
import com.eb.dto.EditInnovationDto;
import com.eb.dto.InnovationListDto;
import com.eb.result.PageResult;
import com.eb.vo.InnovationDetailVo;
import com.eb.vo.InnovationVO;
import com.eb.vo.RankInnovationVO;

import java.util.List;

public interface InnovationService extends IService<Innovation> {

    /**
     * 创建帖子
     */
    boolean createInnovation(AddInnovationDto addInnovationDto);

    /**
     * 查看帖子详情
     * @param innovationId
     * @return
     */
    InnovationDetailVo selectInnovationDetails(Integer innovationId);

    /**
     * 分页查看帖子列表
     * @param innovationListDto
     * @return
     */
    PageResult selectInnovationVoList(InnovationListDto innovationListDto);

    /**
     * 编辑帖子
     * @param editInnovationDto
     * @return
     */
    boolean updateInnovation(EditInnovationDto editInnovationDto);
    /**
     * 根据用户id获取用户发表的帖子列表
     * @param userId
     * @return
     */
    List<InnovationVO> getInnovationByUserId(Integer userId);

    /**
     * 查询热度排行Top10
     * @return
     */
    List<RankInnovationVO> getRank();
}
